package com.tencreat.service.mall;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tencreat.common.core.domain.model.ReqIdParam;
import com.tencreat.common.core.domain.model.ReqIdsParam;
import com.tencreat.domain.mall.MallCategory;
import com.tencreat.domain.mall.vo.MallCategoryVO;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 类目Service接口
 *
 * @author tencreat
 * @date 2021-08-13
 */
public interface IMallCategoryService extends IService<MallCategory> {
    /**
     * 查询类目
     *
     * @param id 类目ID
     * @return 类目
     */
    public MallCategory selectMallCategoryById(ReqIdParam id);

    /**
     * 查询类目列表
     *
     * @param mallCategory 类目
     * @return 类目集合
     */
    public List<MallCategory> selectMallCategoryList(MallCategory mallCategory);

    /**
     * 新增商品类目
     *
     * @param mallCategory 类目
     * @return 结果
     */
    public int insertMallCategory(MallCategory mallCategory);

    /**
     * 修改类目
     *
     * @param mallCategory 类目
     * @return 结果
     */
    public int updateMallCategory(MallCategory mallCategory);

    /**
     * 批量删除类目
     *
     * @param ids 需要删除的类目ID
     * @return 结果
     */
    public int deleteMallCategoryByIds(ReqIdsParam ids);

    /**
     * 删除类目信息
     *
     * @param id 类目ID
     * @return 结果
     */
    public int deleteMallCategoryById(ReqIdParam id);

    /**
     * 获取顶级分类
     * @return
     */
    List<MallCategory> listPatent();

    /**
     * 获取指定目录下的子目录
     * @param reqIdParam
     * @return
     */
    List<MallCategory> listChild(ReqIdParam reqIdParam);

    List<MallCategoryVO> apiListParent();

/*    //根据id查找L1
    List<MallCategoryVO> apiListParent(ReqIdParam idParam);*/

    List<MallCategoryVO> apiListChild(ReqIdParam idParam);

    boolean reSortOrderReduce(MallCategory reqIdParam);

    boolean reSortOrderPlus(MallCategory reqIdParam);

    List<MallCategoryVO> listMedical();

    List<MallCategoryVO> listFoods();

    List<MallCategory> listStoreParent();

    List<MallCategoryVO> listSettleIn(Long type);

    List<MallCategory> listStoreChild(ReqIdParam reqIdParam);

    List<MallCategoryVO> listStoreOne();

    List<MallCategoryVO> listStoreTwo(ReqIdParam idParam);

    /*
    *//**
     * 描述信息  新增店铺商品类目
     * @Author yaoruiqi
     * @Date: 2023/10/12 03:47
     *//*
    int insertMallStoreCategory(MallCategory mallStoreCategory);*/
}
